#ifndef _DEACCENT_H_
#define  _DEACCENT_H_

#ifdef __cplusplus
extern "C" {
#endif

extern const unsigned char deAccentMapTable[];
extern const unsigned char toLowerMapTable[];
extern const unsigned char toUpperMapTable[];
extern const unsigned char toLowerDeaccentedMapTable[];
extern const unsigned char isLowerMapTable[];
extern const unsigned char isUpperMapTable[];

#define deAccentMap(x) deAccentMapTable[((unsigned char)x)]
#define toLowerMap(x) toLowerMapTable[((unsigned char)x)]
#define toUpperMap(x) toUpperMapTable[((unsigned char)x)]
#define toLowerDeaccentedMap(x) toLowerDeaccentedMapTable[((unsigned char)x)]
#define isLowerMap(x) isLowerMapTable[((unsigned char)x)]
#define isUpperMap(x) isUpperMapTable[((unsigned char)x)]

//The functions bellow convert in place, overwiten passed paramters
char *deAccentStr(char *str);
int deAccentStrCmp(char *str1, char *str2);
char *toLowerStr(char *str);
char *toUpperStr(char *str);
char *toLowerDeaccentedStr(char *str);
int toLowerDeaccentedStrCmp(char *str1, char *str2);

#ifdef __cplusplus
}
#endif

#endif //_DEACCENT_H_

